perm filename PNEW.SAI[PNT,HE]1 blob sn#472678 filedate 1979-09-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	ENTRY
C00004 ENDMK
C⊗;
ENTRY;
BEGIN "PNEW"
COMMENT routines which are not available in AL;
DEFINE $PNEW=TRUE,$ALTER_EGO=TRUE;
REQUIRE "HEADER.SAI" SOURCE_FILE;

RPTR(EXPR$)PROCEDURE $PRPCODE(STRING S);
	BEGIN
	INTEGER I;
	IPUSH(XPRNTI);		! push string immediate pcode ;
	IPUSH((LENGTH(S)+2)DIV 2);	! push number of words ;
	DO IPUSH(LOP(S)+ (I←LOP(S)) LSH 8) UNTIL I=0;
	RETURN(βEXPR$);
	END;

PROCEDURE PRINTP;
	BEGIN
	RPTR(EXPR$)P; P←NULL_RECORD;
	WORD_READ("(");
	DO BEGIN
	   GTOKEN;
	   IF TOKEN=dquote
	   THEN	BEGIN "string found"
		READTILL(dquote);
		P←$APPEND(P,$PRPCODE(TOKEN))
		END
	   ELSE BEGIN "expression found"
		STOKEN←TRUE;
		P←$APPEND(P,$PRVPCODE($$GTEXPR));
		END;
	   GTOKEN;
	   END UNTIL TOKEN≠",";
	IF TOKEN≠")" THEN ERROR("Need ) for end of PRINT list");
	$$PCODE←P;
	END;

PROCEDURE XERROR;
	ERROR(TOKEN," is a dummy statement, use some other word");

INTERNAL PROCEDURE FOOCALL(INTEGER I);
	IF I=1 THEN PRINTP ELSE
	XERROR;

END "PNEW"